home *** CD-ROM | disk | FTP | other *** search
- /* The following are Microsoft c libraries to be included at compile time */
- #include <stdio.h> /* std I/O library on c disk */
-
- /* The following are global definitions to be used throughout the program */
- #define EOF -1 /* logical ^Z EOF ends copy */
- #define YES 1
- #define NO 0
- #define NL '\n'
- #define EOS '\0'
- #define MAXLINE 1024
- #define SIZ 9
- #define FF '\014' /* Form feed */
- #define BELL '\007'
- #define DIGMAX 10
- #define CLEAR 12 /* ASCII form feed */
-
- /* The following are external variables that can be used in any functions */
- int inword;
- int nl;
- int nw;
- int nc;
- int ndigits[DIGMAX];
- int c;
-
-
-
-
- /* ---------------------------------------------------------------------- */
-
-
- main() /* */
- {
-
- int len; /* current line length */
- int maxlen; /* max length so far */
- char line[MAXLINE];
- char save[MAXLINE];
- char lineupper[MAXLINE];
- char linelower[MAXLINE];
- char answer[MAXLINE];
-
- printf(FF);
- printf("\n");
- printf("\n");
- printf("Jordan's function test ...\n");
- printf("\n");
-
-
-
- inchar("Input password .....\b\b\b\b\b",5,answer);
- printf("\n\nThe password is %s\n", answer);
-
- }
-
-
-
- /* ---------------------------------------------------------------------- */
-
-
- redirect() /* redirect keybd to CRT */
- {
- int c;
-
- printf("\n");
- printf("\n");
- printf("Jordan's redirect function...\n");
- printf("\n");
- printf("Input numbers, space characters, etc...\n");
- printf("?");
-
-
- while ((c = getchar()) != EOF) /* get char until EOF found */
- putchar(c); /* send char to scrn: */
- }
-
-
- /* ---------------------------------------------------------------------- */
-
-
-
- wordcnt() /* count lines, words, chars in input */
- {
-
- double c, nc, nl, nw; /* counters are float */
- int inword; /* logical is interger */
-
- inword = NO;
- nl = nw = nc = 0.0; /* initialize variables */
-
- printf("\n");
- printf("\n");
- printf("Jordan's word count function ...\n");
- printf("\n");
- printf("Input text for character, word and line count search.\n");
- printf("\n");
-
-
- while ((c = getchar()) != EOF) {
- nc = nc + 1;
-
- if (c == '\n') /* if c=LF then inc nl */
- nl = nl + 1;
-
- if (c == ' ' || c == '\n' || c == '\t') /* if char is space, */
- inword = NO; /* LF or TAB then it */
- /* cannot be a word */
-
- else if (inword == NO) { /* otherwise it is a */
- inword = YES; /* word */
- nw = nw + 1;
- }
- }
- printf("\n");
- printf("\n");
- printf("Number of characters = ");
- printf("%.0f\n",nc); /* prt float # with no dec */
- printf("Number of words = ");
- printf("%.0f\n",nw);
- printf("Number of lines = ");
- printf("%.0f\n",nl);
-
- printf("\n");
- }
-
-
- /* ---------------------------------------------------------------------- */
-
-
- maxline() /* gets maximum length line in file */
- {
- int len; /* current line length */
- int maxlen; /* max length so far */
- char line[MAXLINE];
- char save[MAXLINE];
-
- maxlen = 0;
-
- printf("\n");
- printf("\n");
- printf("Jordan's get maximum length line function ...\n");
- printf("\n");
- printf("Input text for maximum line length search.\n");
- printf("\n");
-
-
- while ((len = getline(line, MAXLINE)) > 0) /* getline defined below */
- if (len > maxlen){
- maxlen = len;
- copy(line, save); /* function from below */
- }
- if (maxlen > 0)
- printf("%s", save);
- }
-
-
- /* ---------------------------------------------------------------------- */
-
-
- getline(s, lim) /* getline into s, return length of s */
- char s[];
- int lim;
- {
- int c,i;
-
- for (i = 0; i < lim-1 && (c = getchar()) != EOF && c != '\n'; ++i)
- s[i] = c;
- if (c == '\n'){
- s[i] = c;
- ++i;
- }
- s[i] = '\0';
- return(i);
- }
-
-
-
- /* ---------------------------------------------------------------------- */
-
-
- copy(s1, s2) /* copy s1 to s2; assume s2 big enough */
- char s1[], s2[];
- {
- int i;
-
- i = 0;
- while (s2[i] = s1[i] != EOS)
- ++i;
- }
-
-
-
-
- /* ---------------------------------------------------------------------- */
-
-
- power(x, n) /* raise x to n-th power; n > 0 */
- int x, n;
- {
- int i, p;
-
- p = 1;
- for (i=1; i<=n; ++i)
- p=p*x;
- return(p);
- }
-
-
-
- /* ---------------------------------------------------------------------- */
-
-
- digicnt() /* count digits, spaces, others */
- {
- int c, i, nspaces, nother; /* integers */
- int ndigits[DIGMAX]; /* integer array */
-
- nspaces = nother = 0;
- for (i= 0; i < 10; ++i)
- ndigits[i] = 0; /* initialize arry to 0 */
-
-
- printf("\n");
- printf("\n");
- printf("Jordan's number counter...\n");
- printf("\n");
- printf("Input numbers, space characters, etc...\n");
- printf("?");
-
- while ((c = getchar()) != EOF)
- if (c >= '0' && c <= '9')
- ++ndigits[c];
- else if (c == ' ' || c == '\n' || c == '\t')
- ++nspaces;
- else
- ++nother;
-
-
-
- printf("\n");
- printf("\n");
- printf("Jordan's number counter results...\n");
- printf("\n");
- printf("Number of digits = ");
- for (i=0; i < 10; ++i)
- printf(" %d", ndigits[i]);
- printf("\nNumber of spaces = %d, Other = %d\n",
- nspaces, nother);
- printf("\n");
- }
-
-
-
- /* ---------------------------------------------------------------------- */
-
- strlen(s) /* return length of string s */
- char s[];
- {
- int i;
-
- i = 0;
- while (s[i] != '\0')
- ++i;
- return(i);
- }
-
-
- /* ---------------------------------------------------------------------- */
-
- atoi(s) /* convert numeric string into numeric equiv */
- char s[];
- {
-
- int i;
- int n; /* need double precision for no > 32K */
-
- n = 0;
- for (i = 0; s[i] >= '0' && s[i] <= '9'; ++i)
- n = 10 * n + s[i] - '0';
-
- return(n);
- }
-
-
- /* ---------------------------------------------------------------------- */
-
-
- upper(s) /* converts lower case to upper */
- char s[];
- {
- int i, j;
-
- for (i = j = 0; s[i] != '\0'; i++,j++) /* inc i after using it */
- if (s[i] >= 'a' && s[i] <= 'z') /* if upeer case do next */
- s[j] = s[i] + 'A' - 'a';
- else
- s[j] = s[i];
-
- s[++j] = '\0';
-
- }
-
-
- /* ---------------------------------------------------------------------- */
-
-
- lower(s) /* converts upper case to lower */
- char s[];
- {
- int i, j;
-
- for (i = j = 0; s[i] != '\0'; i++) /* inc i after using it */
- if (s[i] >= 'A' && s[i] <= 'Z') /* if upeer case do next */
- s[j++] = s[i] + 'a' - 'A'; /* convert ASCII value */
- else
- s[j++] = s[i]; /* only copy as is */
-
- s[j++] = '\0';
-
- }
-
-
-
-
- /* ---------------------------------------------------------------------- */
-
-
- isdigit(c) /* test character to see if it is a digit */
- int c;
- {
- int isdigit;
-
- return(isdigit = c >= '0' && c<= '9'); /* isdigit true = 1 */
- /* isdigit false = 0 */
-
- }
-
-
- /* ---------------------------------------------------------------------- */
-
-
- stuf(s) /* stuffs string s with letters A-I */
- char s[];
- {
- int i,x;
-
- for(x = 65, i = 0; i < SIZ; ++x, ++i)
- s[i] = x;
- }
-
-
- /* ---------------------------------------------------------------------- */
- /* prints mid string 'stradr' beggining at */
- /* 'start' and going for 'num' characters */
- mid(stradr,start,num)
- int start, num;
- char stradr[];
- {
- int i;
-
- for(i = 0; i < num; ++i)
- printf("%c", stradr[start + i]);
- }
-
-
- /* ---------------------------------------------------------------------- */
- /* prompts for answer of 'num' chars */
- /* then returns 'answer' to main */
-
- inchar(prompt,num,answer)
- char *prompt, answer[];
- int num;
- {
- int j;
-
- printf("\n%s", prompt);
-
- for(j = 0; j < num; ++j)
- answer[j] = getchar();
- answer[num] = EOS;
-
- return(answer);
- }
-
-
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */
- /* ---------------------------------------------------------------------- */